34 research outputs found

    Algorithmic Debugging of Real-World Haskell Programs: Deriving Dependencies from the Cost Centre Stack

    Get PDF
    Existing algorithmic debuggers for Haskell require a transformation of all modules in a program, even libraries that the user does not want to debug and which may use language features not supported by the debugger. This is a pity, because a promising ap- proach to debugging is therefore not applicable to many real-world programs. We use the cost centre stack from the Glasgow Haskell Compiler profiling environment together with runtime value observations as provided by the Haskell Object Observation Debugger (HOOD) to collect enough information for algorithmic debugging. Program annotations are in suspected modules only. With this technique algorithmic debugging is applicable to a much larger set of Haskell programs. This demonstrates that for functional languages in general a simple stack trace extension is useful to support tasks such as profiling and debugging

    Lightweight Computation Tree Tracing for Lazy Functional Languages

    Get PDF
    A computation tree of a program execution describes computations of functions and their dependencies. A computation tree describes how a program works and is at the heart of algorithmic debugging. To generate a computation tree, existing algorithmic debuggers either use a complex implementation or yield a less informative approximation. We present a method for lazy functional languages that requires only a simple tracing library to generate a detailed computation tree. With our algorithmic debugger a programmer can debug any Haskell program by only importing our library and annotating suspected functions

    Internet use, needs and expectations of web-based information and communication in childbearing women with type 1 diabetes

    Get PDF
    <p>Abstract</p> <p>Background</p> <p>In the childbearing period women use the internet both to seek information and as an important source of communication. For women with type 1 diabetes, pregnancy and early motherhood constitute a more complex situation than for women in general. This implies need for support from various professionals and a way of bridging any discontinuity in care would be to develop a website providing complementary social support and information. The objective of this study was to explore internet use, needs, and expectations regarding web-based information and communication in childbearing women with type 1 diabetes.</p> <p>Methods</p> <p>Data were collected via a web-based survey with an explorative and descriptive design, in which 105 of 139 eligible mothers with type 1 diabetes and recent childbearing experience participated. The data were analyzed with descriptive and analytical statistics, and open answers with a directed content analysis.</p> <p>Results</p> <p>Of the 105 women, 22% never used the internet to search for information concerning pregnancy, childbirth, and parenthood. 12% searched for information every day, 29% one or more times a week, and 38% one or more times a month. Of the women 44% declared themselves to be passive participants on social websites, and 45% to be active participants. 45% had specific expectations of web-based support directed towards childbearing, especially those with higher educational level (<it>P </it>= .01). Expectations of instrumental and informational support included an expert-controlled website with reliable, updated, and information focused on childbearing and diabetes, improved access to diabetes care professionals and alternative ways to communicate and to receive childbearing-related support. The women also asked for online technical devices to manage the frequent monitoring of blood glucose during pregnancy. Informal, emotional, and appraisal support from women in similar situations was suggested as a way to provide an arena for belonging instead of creating feelings of alienation.</p> <p>Conclusions</p> <p>Our results add important knowledge about the web-based needs of women with type 1 diabetes in relation to childbearing. This user directed study indicates specific areas of development for the provision of effective web-based support that includes facilities for reliable information, interactive support and social networking in this population.</p

    Freja, Hat and Hood --- A Comparative Evaluation of Three Systems for Tracing and Debugging Lazy Functional Programs

    Get PDF
    In this paper we compare three systems for tracing and debugging Haskell programs: Freja, Hat and Hood. We evaluate their usefulness in practice by applying them to a number of moderately complex programs in which errors had deliberately been introduced. We identify the strengths and weaknesses of each system and then form ideas on how the systems can be improved further

    Transforming Haskell for Tracing

    Get PDF
    Hat is a programmer’s tool for generating a trace of a computation of a Haskell 98 program and viewing such a trace in various different ways. Applications include program comprehension and debugging. A new version of Hat uses a stand-alone program transformation to produce self-tracing Haskell programs. The transformation is small and works with any Haskell 98 compiler that implements the standard foreign function interface. We present general techniques for building compiler independent tools similar to Hat based on program transformation. We also point out which features of Haskell 98 caused us particular grief

    Testing and Tracing Lazy Functional Programs using QuickCheck and Hat

    Get PDF
    It is a very undesirable situation that today’s software often contains errors. One motivation for using a functional programming language is that it is more difficult (or even impossible) to make low-level mistakes, and it is easier to reason about programs. But even the most advanced functional programmers are not infallible; they misunderstand the properties of their own programs, or those of others, and so commit errors

    Observing Functional Logic Computations

    Get PDF
    A lightweight approach to debugging functional logic programs by observations is presented, implemented for the language Curry. The Curry Object Observation System (COOSy) comprises a portable library plus a viewing tool. A programmer can observe data structures and functions by annotating expressions in his program. The possibly partial values of observed expressions that are computed during program execution are recorded in a trace file, including information on non-deterministic choices and logical variables. A separate viewing tool displays the trace content. COOSy covers all aspects of modern functional logic multiparadigm languages such as lazy evaluation, higher order functions, non-deterministic search, logical variables, concurrency and constraints. Both use and implementation of COOSy are described
    corecore